1. Field of the Invention
The present invention relates to an image capturing apparatus, an information processing apparatus, and control methods thereof. The present invention more particularly relates to an image capturing apparatus such as a digital camera capable of selecting and setting image processing parameters, and a control method thereof, and to an information processing apparatus and method for generating image processing parameters settable in the image capturing apparatus.
2. Description of the Related Art
Generally, 3×3 matrix operations and one-dimensional lookup tables are used to perform various conversion processes (e.g., gamma transformation) as part of in-camera image processing. These conversion processes are preferred techniques for cutting hardware memory and the number of gates to reduce chip size, and downsizing in order to realize energy savings. However, in recent years, chip downsizing and stronger energy savings have become realizable as a result of advances in hardware miniaturization and the lowering of IC power voltages. This has enabled complex circuitry and mass memory to be loaded in ICs. Therefore, the possibility has emerged of being able to load three-dimensional lookup tables (hereinafter, three-dimensional grid data tables) and high-order matrix operations in digital cameras, and execute complex image processing as part of the in-camera image processing (see U.S. Pat. No. 5,073,818).
However, executable image processing is limited in digital cameras, given user interface and hardware resource constraints. For example, in-camera image processing adjustment is limited to selecting one of a plurality of predetermined image characteristics, and enabling the chroma of the selected image characteristic to be varied or the hue of a portion to be rotated. Therefore, the users may not themselves be able to obtain the color reproduction they really desire. Consequently, JPEG images generated by the digital camera or images developed from raw data need to be adjusted to the desired image using an image processing application run on an information processing apparatus such as a personal computer. Therefore, it takes time in terms of workflow to obtain images with desired color reproduction. Image characteristics can be adjusted relatively freely when an image processing application is used. In particular, three-dimensional grid data tables and high-order matrix operations of second-order or higher enable color reproduction to be finely adjusted, and contribute greatly to the adjustment of image characteristics.
However, while these three-dimensional grid data tables and high-order matrix operations of second-order or higher are generally considered versatile adjustment mechanisms, tone jump and the like occurs when there is a great amount of change from the original image, causing image deterioration.
With IC hardware, there are constraints on the bit number and the number of grid points of grid data tables, often making it impossible to perform high-precision image processing such as that performed with an application. In the case where raw image data is developed with an application, for example, lookup table data needs to be recorded in the image capture file. The size of the raw image file is therefore increased. With a three-dimensional grid data table having m grids, for example, there are m grids per dimension, giving a total of m3 grids. Consequently, an m-grid three-dimensional grid data table with three n-bytes allocated per grid requires a capacity of m3×n×3 bytes. Specifically, an 8-bit (1 byte) three-dimensional grid data table with 9 grids requires a capacity of (9×9×9×3=) 2187 bytes. In contrast, a 16-bit (2 byte) three-dimensional grid data table with 33 grids requires a capacity of (33×33×33×2×3=) 215622 bytes, or a 100-fold greater capacity. Where there is a plurality of three-dimensional lookup tables selectable by the user, for example, all of the three-dimensional lookup tables are preferably recorded in a file, in order to perform subsequent developing. Therefore, the file size further increases, and it takes time to record the file to memory. As a result, the number of shots that can be taken in the continuous shooting mode is restricted.
U.S. Pat. No. 5,073,818 discloses a printer with a lookup table circuit for performing image processing. According to U.S. Pat. No. 5,073,818, a lookup table for converting images is actually created from corrective functions because of the large file size when all of the lookup data is stored.
However, producing all of the data with a lookup table to perform image processing with high bit precision results in the data size of the lookup table being huge, and the scale of circuitry also increases. Further, using high-order matrix operations to perform image processing with high bit precision requires a large number of multipliers, and the number of gates increases markedly with increases in the bit number. Even if nothing more than second-order matrix operations are used, the degree of freedom of the image processing is actually restricted more than processing that uses a three-dimensional grid data table.
Also, if high-order matrix operations are used, there are an extremely large number of parameters for the target image, and because the entire image is actually optimized using the least-squares method, it is not always possible to convert all of the input image data to desired target colors. Further, depending on the matrix, the accuracy of output colors relative to the target can be improved by increasing the order. However, colors may vary unexpectedly in a color gamut having no input image data as a result of increasing the order, and it may not be possible to successfully optimize color reproduction. Ultimately, there has been little success in resolving this problem, apart from performing optimization after reducing the order of the matrix, which increases the difference from target values. That is, while the information amount of matrix operations is low, the degree of freedom of image processing is restricted more than processing that uses a three-dimensional grid data table.
Also, in the case where image processing using an algorithm that differs from the in-camera image processing is performed with an application, the camera needs to already have coefficients that will give a similar processing result. In this case, a large amount of data for three-dimensional grid data tables that is not used in in-camera image processing must be stored on the ROM of the camera, markedly reducing memory use efficiency.